package com.cx.zyx.modulebiz.news.remote.service.user;


import com.cx.zyx.modulebiz.news.remote.model.AdminInfo;
import com.cx.zyx.modulebiz.news.remote.model.Author;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

// @FeignClient 注解：启用Feign客户端，设定服务名称
// value = "user-service"：指定要调用的服务名称，OpenFeign 会从服务注册中心查找这个服务。
// name = "user-service"：指定服务名称，如果服务名称与 value 值一致，可以省略 name 属性。
@FeignClient(name="user-service", url = "http://localhost:8089", fallback = AdminFeignFallback.class)
@Component
public interface AdminFeign {

    /*
     * 声明式调用 user-service 的 /admin/default 接口
     * 方法签名和 Spring MVC 注解与user-service服务保持一致
     * 对用户服务微服务的本地封装
     * */
    @GetMapping("/admin/default")
    ResponseEntity<AdminInfo> getDefaultProfile();


    @GetMapping("/authors/{id}")
    ResponseEntity<Author> getAuthorById(@PathVariable String id);



}
